草庐IT

LeetCode - 回文数

全部标签

Leetcode—421.数组中两个数的最大异或值【中等】

2023每日刷题(十九)Leetcode—421.数组中两个数的最大异或值算法思想参考自灵茶山艾府实现代码classSolution{public:intfindMaximumXOR(vectorint>&nums){intmaxValue=*max_element(nums.begin(),nums.end());inthighIdx=maxValue?31-__builtin_clz(maxValue):-1;intans=0;intmask=0;unordered_setint>pre;for(inti=highIdx;i>=0;i--){mask|=1i;intnew_ans=ans|

回文质数(洛谷)

文章目录一、P1217回文质数PrimePalindromes题目描述输入格式输出格式输入输出样例样例输入#1样例输出#1提示二、思考1.什么是回文质数?搜狗百科启发2.步骤包括哪些?判断素数函数判断回文数检查位数三、补全主函数的优化一、P1217回文质数PrimePalindromes题目描述因为151151151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以151151151是回文质数。写一个程序来找出范围[a,b](5≤a[a,b](5≤ab≤100,000,000)(一亿)间的所有回文质数。输入格式第一行输入两个正整数aaa和bbb。输出格式输出一个回文质数的列表,一

【数据结构 | 链表】leetcode 2. 两数相加

个人主页:兜里游客棉花糖欢迎点赞👍收藏✨留言✉加关注💓本文由兜里游客棉花糖原创收录于专栏【LeetCode】原题链接:点击直接跳转到该题目目录题目描述解题代码题目描述给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0开头。示例1:输入:l1=[2,4,3],l2=[5,6,4]输出:[7,0,8]解释:342+465=807.示例2:输入:l1=[0],l2=[0]输出:[0]示例3:输入:l1=[9,9,9,9,9,9,9],l2=[9,9

【LeetCode刷题日志】160.相交链表

🎈个人主页:库库的里昂 🎐C/C++领域新星创作者 🎉欢迎👍点赞✍评论⭐收藏✨收录专栏:LeetCode刷题日志🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗目录1.题目描述2.解题思路+代码实现方法:双指针思路及算法:代码实现:1.题目描述OJ链接 【leetcode 题号:160.相交链表】【难度:简单】给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持

LeetCode 27.移除元素

文章目录💡题目分析💡解题思路🚩思路1:暴力求解---遍历🔔接口源码:🚩思路2:空间换时间🔔接口源码:🚩思路3:双指针(快慢指针)🔔接口源码:题目链接👉LeetCode27.移除元素👈💡题目分析给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。💡解题思路🚩思路1:暴力求解—遍历直接一个循环遍历nums数组每个元素;再对每个元素判断是否和val相等;相等就把后面的元素往前挪动覆盖它,已达到删除val的目的;🚨注意:移

判定给定的字符序列是否为回文【数据结构】【栈】

回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。写一个算法判定给定的字符序列是否为回文。(提示:将一半字符入栈)。输出结果:  主要算法: //字符串一半入栈比较intCompare(charx[]){ SqStacks; InitStack(s); intn=int(strlen(x)); //将前一半字符串入栈 for(inti=0;i 完整代码: #includeusingnamespacestd;//定义顺序栈#defineMAXSIZE20typedefstruct{ char*base; char*top; intstacksize

【算法|前缀和系列No.5】leetcode1314. 矩阵区域和

个人主页:兜里有颗棉花糖欢迎点赞👍收藏✨留言✉加关注💓本文由兜里有颗棉花糖原创收录于专栏【手撕算法系列专栏】【Leetcode】🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助🍓希望我们一起努力、成长,共同进步。点击直接跳转到该题目目录1️⃣题目描述2️⃣题目解析3️⃣解题代码1️⃣题目描述给你一个mxn的矩阵mat和一个整数k,请你返回一个矩阵answer,其中每个answer[i][j]是所有满足下述条件的元素mat[r][c]的和:i-kj-k(r,c)在矩阵内示例1:输入:mat=[[1,2,3],[4,5,6],[7,8,9]],k=1输出:[[12,2

LeetCode | 面试题 02.02. 返回倒数第 k 个节点

LeetCode|面试题02.02.返回倒数第k个节点OJ链接思路:定义两个快慢指针,让快指针先提前走k个节点,然后再让慢结点和快结点一起走,当快指针==NULL时,慢指针就是倒数第k个节点代码如下:intkthToLast(structListNode*head,intk){structListNode*slow,*fast;slow=fast=head;while(k--){if(fast==NULL)returnNULL;fast=fast->next;}while(fast!=NULL){slow=slow->next;fast=fast->next;}returnslow->val;

力扣每日一道系列 --- LeetCode 138. 随机链表的复制

📷江池俊:个人主页🔥个人专栏:✅数据结构探索✅LeetCode每日一道🌅有航道的人,再渺小也不会迷途。LeetCode138.随机链表的复制给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的深拷贝。深拷贝应该正好由n个全新节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。例如,如果原链表中有X和Y两个节点,其中X.random-->Y。那么在复制链表中

【LeetCode力扣】70. 爬楼梯 (简单)

目录1、题目介绍2、解题2.1、解题思路2.2、图解说明2.3、解题代码 (1)滚动数组(用的是c语言)(2)递归(用的是c语言)1、题目介绍原题链接:70.爬楼梯-力扣(LeetCode)示例1:输入:n=2输出:2解释:有两种方法可以爬到楼顶。1.1阶+1阶2.2阶示例2:输入:n=3输出:3解释:有三种方法可以爬到楼顶。1.1阶+1阶+1阶2.1阶+2阶3.2阶+1阶提示:12、解题2.1、解题思路我们可以用F(n)来表示爬到第n个阶梯的总方案数,因为一次可以上1或2个阶梯,所以最后一步可能跨了1个台阶,也可能跨了2个台阶;意思就是最后一步可能是从第n-1个台阶跨到了第n个台阶,或者是从